package com.zw.stock_sell_storage.service;

import com.zw.stock_sell_storage.dto.SaleCarDto;
import com.zw.stock_sell_storage.dto.SaleInformationDto;

import java.util.List;

/**
 * 销售购物车业务层
 */
public interface ISaleCarService {
    /**
     * 根据用户id查询销售购物车列表
     * @param userId 用户id
     * @return 返回销售购物车集合
     */
    List<SaleCarDto> querySaleCarList(int userId);

    /**
     * 添加销售购物车
     * @param saleCarDto 销售购物车实体对象
     * @return 返回是否添加成功
     */
    boolean addSaleCar(SaleCarDto saleCarDto);

    /**
     * 修改销售购物车信息
     * @param saleCarDto 销售购物车实体对象
     * @return 返回是否修改成功
     */
    boolean updateSaleCar(SaleCarDto saleCarDto);

    /**
     * 通过销售购物车id删除对应购物车信息
     * @param saleCarId 销售购物车id
     * @return 返回是否删除成功
     */
    boolean rmvSaleCarById(int saleCarId);

    /**
     * 清空购物车
     * @param userId 用户id
     * @return 返回是否清空成功
     */
    boolean rmvAllSaleCar(int userId);

    /**
     * 销售购物车出库，导致库存改变，导致销售信息改变
     * @param saleInformationDto 销售信息实体对象
     * @return 返回是否出库成功
     */
    boolean pushSaleCar(SaleInformationDto saleInformationDto,int userId);

    /**
     * 通过商品编号修改购物车商品销售价格
     * @param goodsCode 商品编号
     * @param goodsSalePrice 销售价格
     * @return
     */
    boolean updateSaleCarByGoodsCode(String goodsCode,Double goodsSalePrice);
}
